Traditional techniques used to identify interfaces in computing languages, e.g., component object model (COM), relied on a programmer to manually create a globally unique identifier (GUID) for each interface. The interface identifier was generally created and implemented such that component may interoperate at a binary level. However, because these traditional techniques relied on the programmer to create the identifier, two programmers would be unable to independently compute the same interface identifier for the same interfaces, leaving them unable to design components that could interoperate with each other.